var ppt = {
    len: $('.slider').length,
    $wrap: $('.wrapper'),
    nowIndex: 0,
    $slider: $('.slider'),
    lastIndex: null,
    flag: true,
    timer: undefined,
    // 入口函数
    init: function () {
        if (this.len > 1) {
            this.createDom(this.len);
            this.bindEvent();
            this.sliderAuto();
        }
    },
    // 动态生成小圆点
    createDom: function (len) {
        var str = '', btn = '';
        for (i = 0; i < len; i++) {
            if (i == 0) {
                str += '<li class="active"></li>';
            } else {
                str += '<li></li>';
            }
        }
        // 动态生成小圆点及左右Btn
        str = '<div class="slider-order"><ul>' + str + '</ul></div>';
        btn = '<div class="slider-btn">\
        <span class="left-btn"></span>\
        <span class="right-btn"></span>\
    </div>'
        this.$wrap.append(str).append(btn);
    },
    // 点击获得Index  点击函数
    bindEvent: function () {
        var self = this;
        $('li').add($('.left-btn')).add($('.right-btn')).on('click', function () {
            if ($(this).attr('class') == 'left-btn') {
                // self.getIndex('left');
                self.tool('left');
            } else if ($(this).attr('class') == 'right-btn') {
                // self.getIndex('right');
                self.tool('right');
            } else {
                // self.getIndex($(this).index());
                self.tool($(this).index());
            }
            // self.changActive(self.nowIndex);
            // self.$slider.eq(self.lastIndex).trigger('leave');            
            // self.$slider.eq(self.nowIndex).trigger('come');
        });
        this.$slider.on('leave', function () {
            $(this).fadeOut(300).find($('img')).animate({ width: '0%' });
        })
        this.$slider.on('come', function () {
            $(this).fadeIn(300).find($('img')).delay(300).animate({ width: '40%' }, 300, 'linear', function () {
                self.flag = true;
                self.sliderAuto();
            })
        })

    },
    // 判断左右，还是索引值
    tool: function (text) {
        var self = this;
        if (this.flag) {
            self.getIndex(text);
            if (self.lastIndex !== self.nowIndex) {
                self.changActive(self.nowIndex);
                // trigger() 方法触发被选元素的指定事件类型。
                // delay() 方法对队列中的下一项的执行设置延迟。
                self.$slider.eq(self.lastIndex).trigger('leave');
                self.$slider.eq(self.nowIndex).delay(300).trigger('come');
                self.flag = false;
                
            }

        }
    },
    getIndex: function (dir) {
        this.lastIndex = this.nowIndex;
        if (dir == 'left') {
            // index--;
            this.nowIndex = this.nowIndex == 0 ? this.len - 1 : this.nowIndex - 1;
        } else if (dir == 'right') {
            // index++;
            this.nowIndex = this.nowIndex == this.len - 1 ? 0 : this.nowIndex + 1;
        } else {
            this.nowIndex = dir;
        }
    },
    changActive: function (index) {
        $('.active').removeClass('active');
        $('li').eq(index).addClass('active');
    },
    sliderAuto: function () {
        var self = this;
        clearTimeout(self.timer);
        self.timer = setTimeout(function () {
            self.tool('right');
        }, 3000)
    }
}
ppt.init();